home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 8: LINUX Games / Linux Cubed Series 8 - LINUX Games.iso / games / x11 / strategy / xshisen-.001 / xshisen-~ / xshisen-1.35 / history.C < prev    next >
C/C++ Source or Header  |  1995-10-18  |  1KB  |  80 lines

  1. #include "components.h"
  2.  
  3. History::History(int c)
  4. {
  5.     piece1 = new Point[c];
  6.     piece2 = new Point[c];
  7.     via1   = new Point[c];
  8.     via2   = new Point[c];
  9.     count  = 0;
  10. }
  11.  
  12. History::~History(void)
  13. {
  14.     delete[] piece1;
  15.     delete[] piece2;
  16.     delete[] via1;
  17.     delete[] via2;
  18. }
  19.  
  20. void
  21. History::ChangeHistorySize(int c)
  22. {
  23.     delete[] piece1;
  24.     delete[] piece2;
  25.     delete[] via1;
  26.     delete[] via2;
  27.     piece1 = new Point[c];
  28.     piece2 = new Point[c];
  29.     via1   = new Point[c];
  30.     via2   = new Point[c];
  31.     count  = 0;
  32. }
  33.  
  34. void
  35. History::AddHistory(const Point &a, const Point &b, const Point &c, const Point &d)
  36. {
  37.     piece1[count] = a;   // Pai 1
  38.     piece2[count] = b;   // Pai 2
  39.     via1[count] = c;     // Via point 1
  40.     via2[count] = d;     // Via point 2
  41.     count++;
  42. }
  43.  
  44. int
  45. History::BackHistory(void)
  46. {
  47.     if (count > 0) {
  48.         count--;
  49.         return 1;
  50.     }
  51.     else
  52.         return 0;  // Cannot back any more
  53. }
  54.  
  55. void
  56. History::GetXY(int c, Point &a, Point &b)
  57. {
  58.     // c<0 means count back from current
  59.     if (c < 0)
  60.         c = count + c;
  61.     a = piece1[c];
  62.     b = piece2[c];
  63. }
  64.  
  65. void
  66. History::GetV(int c, Point &a, Point &b)
  67. {
  68.     // c<0 means count back from current
  69.     if (c < 0)
  70.         c = count + c;
  71.     a = via1[c];
  72.     b = via2[c];
  73. }
  74.  
  75. void
  76. History::ResetHistory(void)
  77. {
  78.     count = 0;
  79. }
  80.